//
//  NSDate+Extension.swift
//  WeiBo
//
//  Created by 张德华 on 7/29/16.
//  Copyright © 2016 ZhangDeHua. All rights reserved.
//

import UIKit

private let df = NSDateFormatter()

/**日历类*/
private let calendar = NSCalendar.currentCalendar()


extension NSDate {
    
    // MARK: - ************获取微博日期
    class func sinDate(createAt: String) -> NSDate? {
        
        ///------ 指定地区
        df.locale = NSLocale(localeIdentifier: "en_US")
        ///------ 指定格式
        df.dateFormat = "EEE MMM dd HH:mm:ss z yyyy"
        return df.dateFromString(createAt)
    }
    
    var sinaDescripitionStr: String {
        
        /**pand是否是今年*/
        let isThisYear = sinaIsThisYear(self)
        
        if isThisYear {
            
            ///------ 是今天
            if calendar.isDateInToday(self) {
                
                ///------ 获取当前时间和传入的微博时间差值
                let s = Int(NSDate().timeIntervalSinceDate(self))
                
                if s < 60 {
                    return "刚刚"
                } else if s >= 60 && s < 3600 {
                    return "\(s/60)分钟前"
                } else {
                    return "\(s/3600)小时前"
                }
            } else if calendar.isDateInYesterday(self) {
                
                ///------ 是昨天
                df.dateFormat = "昨天 HH:mm"
            } else {
                
                ///------ 其他
                df.dateFormat = "MM月dd日 HH:mm"
            }
            
        } else {
            
            ///------ 不是今年
            df.dateFormat = "yyyy年MM月dd日 HH:mm"
        }
        return df.stringFromDate(self)
    }
    
    
    // MARK: - ************判断微博时间是否是今年
    func sinaIsThisYear(sinaDate: NSDate) -> Bool {
        
        ///------ 指定地区
        df.locale = NSLocale(localeIdentifier: "en_US")
        ///------ 指定时间格式
        df.dateFormat = "yyyy"
        ///------ 获取当前的日期
        let currentDate = NSDate()
        ///------ 微博日期字符串
        let sinaStr = df.stringFromDate(sinaDate)
        ///------ 当前日期字符串
        let currenStr = df.stringFromDate(currentDate)
        
        return sinaStr == currenStr
    }
    
}
